package com.sdgakj.utils;


/**
 * 模拟数据传输
 * RSA+AES结合使用
 */
public class SimulateDataTrasform {


    static {
        try {
            RSAUtils.getKeys();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    public static void main(String[] args) {


        String data = "盛年不重来，一日难再晨。及时当勉励，岁月不待人。";
        /**
         * 前端,andriod,h5,ios
         * 1 首先是AES加密原始内容
         */
        String key = AESUtils.generateKey();
        System.out.println("生成的随机字符串====" + key);
        try {
            String aesEncrpt = AESUtils.encryptData(key, data);
            System.out.println("AES加密后的内容=====" + aesEncrpt);
            /**
             * 2.加密完原文后,对于生成的AES的Key值进行RSA 公钥加密
             *
             */
            String rsaEncrypt_AesKey = RSAUtils.encryptByPublicKey(key);

            System.out.println("加密后的AES密钥====" + rsaEncrypt_AesKey);
            /**
             * 3 得到这些内容后,将加密后的原文内容和加密后的AES密钥传往服务器
             */

            /**
             * 4 后台的处理,先用RSA的私钥解密 加密后的AES密钥,再用该密钥解密出原始内容
             */
            String descodeAESKey = RSAUtils.decryptByPrivateKey(rsaEncrypt_AesKey);
            System.out.println("原始的AES密钥====" + descodeAESKey);
            String startContent = AESUtils.decryptData(descodeAESKey, aesEncrpt);
            System.out.println("AES解密后的原始内容=====" + startContent);

        } catch (Exception e) {
            e.printStackTrace();
        }


    }
}
